﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace GUI
{
    public partial class ThemVe : Form
    {
        public ThemVe()
        {
            InitializeComponent();
        }

        private void Button_ThemVe_Click(object sender, EventArgs e)
        {
            int count = 0;
            //1.Kiểm tra mã vé có là chuỗi rỗng hay không?
            if (TextBox_MaVe.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập mã vé!");
            else count++;

            //2.Kiểm tra mã chuyến bay có là chuỗi rỗng hay không?
            if (TextBox_MaChuyenBay.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập mã chuyến bay!");
             else count++;

            //3.Kiểm tra mã hành khách có là chuỗi rỗng hay không?
            if (TextBox_MaHanhKhach.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập mã hành khách!");
             else count++;

            //4.Kiểm tra họ tên hành khách có là chuỗi rỗng hay không?
            if (TextBox_HoTen.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập họ tên hành khách!");
             else count++;

            //5.Kiểm tra CMND có là chuỗi rỗng hay không?
            if (TextBox_CMND.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập số chứng minh nhân dân hành khách!");
             else count++;

            //6.Kiểm tra quốc tịch có là chuỗi rỗng hay không?
            if (TextBox_QuocTich.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập quốc tịch của hành khách!");
             else count++;

            //7.Kiểm tra Passport có là chuỗi rỗng hay không?
            if (TextBox_Passport.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập passport hành khách!");
             else count++;

            //8.Kiểm tra địa chỉ có là chuỗi rỗng hay không?
            if (TextBox_DiaChi.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập địa chỉ hành khách!");
             else count++;

            //9.Kiểm tra có chọn giới tính chưa?
            if (RadioButton_Nam.Checked == false && RadioButton_Nu.Checked == false)
                MessageBox.Show("Xin vui lòng chọn giới tính nam hay nữ!");
             else count++;

            //10.Kiểm tra có chọn hạng vé chưa?
            if (RadioButton_Hang1.Checked == false && RadioButton_Hang2.Checked == false)
                MessageBox.Show("Xin vui lòng chọn vé hạng 1 hay 2!");
             else count++;

            //11.Kiểm tra có chọn loại vé đặt hay vé mua chưa?
            if (RadioButton_Dat.Checked == false && RadioButton_Mua.Checked == false)
                MessageBox.Show("Xin vui lòng chọn vé đặt hay vé mua!");
             else count++;

            //12.Kiểm tra ngày đến có bé hơn ngày đi hay không?
            if (DateTimePicker_NgayDi.Value < DateTimePicker_NgayDen.Value)
                MessageBox.Show("Xin vui lòng chọn lại ngày đi và ngày đến!");
            else count++;

            //13.Kiểm tra STT ghế có được ghi hay chưa
            if (TextBox_STTGhe.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng nhập số thứ tự ghế!");
            else
            {
                List<Ve_DTO> ve1 = new List<Ve_DTO>();
                ve1 = Ve_BUS.layDanhSachVe();
                for (int i = 0; i < ve1.Count; i++)
                    if (ve1[i].SttGhe == Convert.ToInt32(TextBox_STTGhe.Text.Trim()))
                        count++;
                    else
                        MessageBox.Show("Xin vui lòng chọn số thứ tự ghế khác! Ghế này đã có hành khách!");
            }

            //Tìm để lấy ra mã lịch bay
            string maLB = String.Empty;
            List<LichBay_DTO> lichBay = new List<LichBay_DTO>();
            lichBay = LichBay_BUS.layDanhSachLichBay();
            bool temp;
            for (int i = 0; i < lichBay.Count; i++)
            {
                if (string.Compare(lichBay[i].ngayDi, DateTimePicker_NgayDi.Value.ToString()) == 0 && string.Compare(lichBay[i].ngayDen, DateTimePicker_NgayDen.Value.ToString()) == 0 && string.Compare(lichBay[i].maCB, TextBox_MaChuyenBay.Text.Trim()) == 0)
                {
                    maLB = lichBay[i].maLB;
                    temp = true;
                }
                else
                    temp = false;
            }

            NhanVien_DTO nhanVien = new NhanVien_DTO();

            if (temp == false)
                MessageBox.Show("Vui lòng kiểm tra lại thông tin ngày đi ngày đến và mã chuyến bay!");
            else
            {
                if (count == 13)
                {
                    int ngay, thang, nam;
                    //Lấy thông tin về vé cần thêm 
                    Ve_DTO ve = new Ve_DTO();
                    ve.MaVe = TextBox_MaVe.Text.Trim();
                    //ve.MaNV = nhanVien.MaNV;
                    ve.MaLB = maLB;
                    ve.MaHK = TextBox_MaHanhKhach.Text.Trim();
                    ve.SttGhe = Convert.ToInt32(TextBox_STTGhe.Text.Trim());

                    //Lấy ra ngày tháng năm hiện hành
                    ngay = DateTime.Now.Day;
                    thang = DateTime.Now.Month;
                    nam = DateTime.Now.Year;
                    ve.NgayLap = ngay.ToString() + "/" + thang.ToString() + "/" + nam.ToString();

                    //Hạng vé: hạng 1-true, hạng 2-false
                    if (RadioButton_Hang1.Checked == true)
                        ve.HangVe = true; //vé hạng 1
                    else
                        ve.HangVe = false; //vé hạng 2

                    //Loại vé: mua-true, đặt-false
                    if (RadioButton_Mua.Checked == true)
                        ve.LoaiVe = true;
                    if (RadioButton_Dat.Checked == true)
                        ve.LoaiVe = false;

                    bool result_ThemVe = Ve_BUS.themVe(ve);

                    //Lấy thông tin hành khách
                    HanhKhach_DTO hanhKhach = new HanhKhach_DTO();
                    hanhKhach.MaHK = TextBox_MaHanhKhach.Text.Trim();
                    hanhKhach.HoTen = TextBox_HoTen.Text.Trim();
                    //Giới tính nam: flase, nữ: true
                    if (RadioButton_Nam.Checked == true)
                        hanhKhach.GioiTinh = false;
                    if (RadioButton_Nu.Checked == true)
                        hanhKhach.GioiTinh = true;
                    hanhKhach.CMND = TextBox_CMND.Text.Trim();
                    hanhKhach.QuocTich = TextBox_QuocTich.Text.Trim();
                    hanhKhach.Passport = TextBox_Passport.Text.Trim();
                    hanhKhach.DiaChi = TextBox_DiaChi.Text.Trim();
                    hanhKhach.DienThoai = TextBox_DienThoai.Text.Trim();

                    bool result_ThemHK = HanhKhach_BUS.themHanhKhach(hanhKhach);

                    if (result_ThemHK == true && result_ThemVe == true)
                        MessageBox.Show("Thêm vé thành công!");
                    else
                        MessageBox.Show("Thêm vé thất bại!");
                }
            }
        }
    }
}
